#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
long long Palindrome_number(long long n)  //求一个数的回文数
{
	long long m = 0;
	while (n)
	{
		m = m * 10 + n % 10;
		n /= 10;
	}
	return m;
}

int main()
{
	long long n, m = 0, count = 0;
	scanf("%lld", &n);
	printf("%lld", n);

	if (Palindrome_number(n) == n)  //如果输入的数字是回文数,不做变换
		printf("\n0");
	else
	{
		m = n + Palindrome_number(n);  //第一次变换
		while (m != Palindrome_number(m))  //若变换所得结果不是回文数,继续变换
		{
			printf("--->%lld", m);  //打印变换的过程
			count++;
			n = m;  //上一次变换的结果作为下一次变换的对象
			m = n + Palindrome_number(n);  //继续变换
		}
		printf("--->%lld", m);  //打印最后一次变换
		count++;
		printf("\n%lld", count);  //变换的次数
	}
	return 0;
}